#include <string>
#include <sstream>

#ifdef DATA_WSTRING_MODE
// Character interface macros
#define DATA_STRING std::wstring
#define DATA_STRINGSTREAM std::wstringstream
#define DATA_TEXT(str) L ## str
#define STRINGCOMPARE(str1, str2) wcscmp(str1, str2)
#define STR2INT(str) wcstol(str, 0, 10)
#define STR2DOUBLE(str) wcstod(str, 0)
#else
#define DATA_STRING std::string
#define DATA_STRINGSTREAM std::stringstream
#define DATA_TEXT(str) str
#define STRINGCOMPARE(str1, str2) strcmp(str1, str2)
#define STR2INT(str) strtol(str, 0, 10)
#define STR2DOUBLE(str) strtod(str, 0)
#endif

// Character type used for all internal storage and operations; depends on DATA_STRING_MODE
typedef DATA_STRING String_t;
typedef DATA_STRINGSTREAM StringStream_t;



